 # 面向对象设计：类和对象
# 分析：
# 类名：猫类 ‐‐> Cat
# 属性：姓名 ‐‐> name
# 方法：吃 喝 ‐‐> eat() drink()
from os import name

import self as self

class Cat(object):
    """猫类"""
# 对象设置属性‐‐‐> 通过固定的方法 __init__()
    def __init__(self,name):
        """初始化方法：给对象设置属性"""
    self.name = name
# self.name = "懒猫" # lazy这个猫的名字是"懒猫"
    def eat(self):
        """吃方法"""
print(f"{self.name} 爱吃鱼")
def drink(self):
    """喝方法"""
print(f"{self.name} 要喝水")
# 创建对象 : init在创建对象时自动被调用，如果有形参，需要在创建对象时传递实参
tom = Cat("汤姆")
lazy = Cat("懒猫")
# 调用方法
tom.eat()
tom.drink()
# 总结：
# 1.给类对象设置属性使用初始化方法：__init__(self)
# 2.初始化方法内部设置属性：self.属性名 = 属性值
# 3.初始化方法在创建对象时被自动调用
# 4.在类中其他方法使用属性是直接通过：self.属性名 获取属性值
# 5.在python中双下划线开头双下划线结尾的方法叫内置方法